Instrukcje warunkowe
Domyślnie, kod w programie wykonuje się linijka po linijce. Jednak, co jeśli byśmy chcieli, żeby dany kod się wykonał tylko wtedy, kiedy np. postać ma mało punktów życia? W takich i wielu innych sytuacjach z pomocą przychodzą nam instrukcje warunkowe
Co to jest instrukcja warunkowa?
Instrukcja warunkowa sprawdza warunek, i jeśli jest on prawdziwy, wykonuje dany fragment kodu. Bardziej rozbudowane instrukcje mogą sprawdzać wiele warunków, a także co program ma zrobić, kiedy jest on fałszywy
Instrukcja warunkowa w pythonie
W pythonie (i wielu innych językach programowania) najprostszą instrukcję warunkową zapisujemy jako if i podajemy warunek, jaki ma ona sprawdzać
wiek = 17 if wiek < 18: print("Użytkownik niepełnoletni") else: print("Użytkownik pełnoletni")
W powyższym kodzie sprawdzam, czy wiek jest mniejszy niż 18 (widać to w warunku wiek < 18). Jeśli warunek jest prawdziwy, wykona się kod po if. Natomiast, jeśli warunek jest fałszywy, wykona się kod po else.
Aby python wiedział, który kod znajduje się w if, a który w else, dodajemy wcięcie klawiszem TAB. Ten mechanizm będzie powtarzał się w wielu innych rzeczach, także warto go zapamiętać.
Instrukcja sprawdzająca klika warunków jeden po drugim
Oprócz już znanego nam if i else, trzecim wariantem jest ich połączenie, czyli elif. Spójrzmy na poniższy kod
liczba = 20 if liczba > 0: print("Liczba jest dodatnia") elif liczba == 0: print("Liczba jest zerem") else: print("Liczba jest ujemna")
Tutaj sprawdzam na początku, czy liczba jest większa od zera. Jeśli warunek będzie prawdziwy, program wykona kod pod if-em i pominie resztę instrukcji. Jeśli warunek jest fałszywy, program sprawdzi następny warunek w elif. Jeśli on będzie prawdziwy, wykona kod pod nim. Jeśli oba warunki będą fałszywe, program wykona kod pod else.
Operatory porównania
W instrukcji wcześniej, użyłem operatora ==. Jest to jeden z operatorów porównania.
- Operator == - równa się
- Operator != - nie równa się
- Operatory > i < - większe niż / mniejsze niż
- Operatory >= i <= - większe lub równe / mniejsze lub równe
Łączenie warunków ze sobą (or i and)
Warunki mogą być bardziej złożone. Kiedy chcemy sprawdzić co najmniej dwie rzeczy, w jednej instrukcji, używamy operatorów and (i) oraz or (lub).
Różnica polega na tym, że and wymaga, żeby oba warunki były prawdziwe, gdy or potrzebuje, aby co najmniej jeden warunek był prawdziwy
Spójrzmy na ten kod
liczba = 15 if liczba > 10 and liczba < 20: print("Liczba jest większa od 10 i mniejsza od 20")
if wykona się wtedy, kiedy liczba jest większa niż 10 i mniejsza niż 20. Czyli oba warunki muszą być spełnione
liczba = 10 if liczba < 15 or liczba > 30: print("Liczba jest mniejsza od 15 lub wieksza od 30")
W powyższym przykładzie mamy zastosowany operator or. Znaczy to, że kod wykona się, kiedy conajmniej jeden warunek jest poprawny. Wykona się także wtedy, kiedy obydwa by były poprawne.